/**
 * 1. ||=
 * 逻辑或赋值运算
 * 0、空字符串、null、undefined均false
 */
let msg = 0
// msg = msg || 'default value'
msg ||= 'default value'
console.log(msg)


/**
 * 2. &&=
 * 逻辑与赋值运算
 */
let obj = {
  name: 'k',
  foo() {
    console.log('foo run')
  }
}
obj && obj.foo && obj.foo()

//obj = obj && obj.name
obj &&= obj.name
console.log(obj)

/**
 * 3. ??=
 * 0、空字符串''为true
 * null、undefined为false
 */
let a = 0
a ??= 'de'
console.log(a, '===')
